package com.xzcedu.outputstream_;

import org.junit.jupiter.api.Test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * @author 徐州城
 * @version 1.0
 */
public class FileOutputStream01 {
    public static void main(String[] args) {

    }

    /**
     * 演示使用FileOutputStream 将数据写到文件中，
     * 如果该文件不存在，则创建该文件
     */
    @Test
    public void writeFile() {

        String filePath = "e:\\a.txt";
        //创建 FileOutputStream对象
        FileOutputStream fileOutputStream = null;

        try {
            /*
            说明：
            1. new FileOutputStream(filePath) 创建方式，当写入内容时，会覆盖原来的内容
            2. new FileOutputStream(filePath, true) 创建方式，当写入内容是，是追加到文件后面
             */

            //得到 FileOutputStream对象
            fileOutputStream = new FileOutputStream(filePath, true);
            //写入一个字节
            //fileOutputStream.write('H');//char -> int
            //写入字符串
            String str = "java,world!";
            //str.getBytes() 可以把字符串 转成 字节数组
            //fileOutputStream.write(str.getBytes());
            /*
            write(byte[] b, int off, int len) 将len字节位于偏移重 off的指定字节数组写入此文件输出流
            write(byte[] b, 2, 3) 表示从索引为2的位置开始 到2 + 3 的位置
             */
            fileOutputStream.write(str.getBytes(), 0, 3);

        } catch (IOException e) {
            e.printStackTrace();

        } finally {

            try {
                fileOutputStream.close();
                System.out.println("关闭成功..");
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
